import java.util.*;

/**
 * @author LKQ
 * @date 2022/4/25 17:39
 * @description 2. 位运算，统一每一位上 1的个数，只有这个唯一的答案贡献了一次，其余的数都贡献了3次。
 */
public class Solution2 {
    public static void main(String[] args) {

    }
    public int singleNumber(int[] nums) {
        int ans = 0;
        for (int i = 0; i < 32; ++i) {
            int total = 0;
            // 每一位上，1的出现次数
            for (int num: nums) {
                total += ((num >> i) & 1);
            }
            // 其余的数都贡献了3次或0次，只有答案贡献了1次或0次。
            if (total % 3 != 0) {
                ans |= (1 << i);
            }
        }
        return ans;
    }
}
